
phase2：     文件格式 elf64-x86-64


Disassembly of section .init:

0000000000400768 <_init>:
  400768:	48 83 ec 08          	sub    $0x8,%rsp
  40076c:	48 8b 05 85 18 20 00 	mov    0x201885(%rip),%rax        # 601ff8 <__gmon_start__>
  400773:	48 85 c0             	test   %rax,%rax
  400776:	74 05                	je     40077d <_init+0x15>
  400778:	e8 d3 00 00 00       	call   400850 <__gmon_start__@plt>
  40077d:	48 83 c4 08          	add    $0x8,%rsp
  400781:	c3                   	ret

Disassembly of section .plt:

0000000000400790 <.plt>:
  400790:	ff 35 72 18 20 00    	push   0x201872(%rip)        # 602008 <_GLOBAL_OFFSET_TABLE_+0x8>
  400796:	ff 25 74 18 20 00    	jmp    *0x201874(%rip)        # 602010 <_GLOBAL_OFFSET_TABLE_+0x10>
  40079c:	0f 1f 40 00          	nopl   0x0(%rax)

00000000004007a0 <abort@plt>:
  4007a0:	ff 25 72 18 20 00    	jmp    *0x201872(%rip)        # 602018 <abort@GLIBC_2.2.5>
  4007a6:	68 00 00 00 00       	push   $0x0
  4007ab:	e9 e0 ff ff ff       	jmp    400790 <.plt>

00000000004007b0 <puts@plt>:
  4007b0:	ff 25 6a 18 20 00    	jmp    *0x20186a(%rip)        # 602020 <puts@GLIBC_2.2.5>
  4007b6:	68 01 00 00 00       	push   $0x1
  4007bb:	e9 d0 ff ff ff       	jmp    400790 <.plt>

00000000004007c0 <ferror@plt>:
  4007c0:	ff 25 62 18 20 00    	jmp    *0x201862(%rip)        # 602028 <ferror@GLIBC_2.2.5>
  4007c6:	68 02 00 00 00       	push   $0x2
  4007cb:	e9 c0 ff ff ff       	jmp    400790 <.plt>

00000000004007d0 <fread@plt>:
  4007d0:	ff 25 5a 18 20 00    	jmp    *0x20185a(%rip)        # 602030 <fread@GLIBC_2.2.5>
  4007d6:	68 03 00 00 00       	push   $0x3
  4007db:	e9 b0 ff ff ff       	jmp    400790 <.plt>

00000000004007e0 <getpid@plt>:
  4007e0:	ff 25 52 18 20 00    	jmp    *0x201852(%rip)        # 602038 <getpid@GLIBC_2.2.5>
  4007e6:	68 04 00 00 00       	push   $0x4
  4007eb:	e9 a0 ff ff ff       	jmp    400790 <.plt>

00000000004007f0 <fclose@plt>:
  4007f0:	ff 25 4a 18 20 00    	jmp    *0x20184a(%rip)        # 602040 <fclose@GLIBC_2.2.5>
  4007f6:	68 05 00 00 00       	push   $0x5
  4007fb:	e9 90 ff ff ff       	jmp    400790 <.plt>

0000000000400800 <mmap@plt>:
  400800:	ff 25 42 18 20 00    	jmp    *0x201842(%rip)        # 602048 <mmap@GLIBC_2.2.5>
  400806:	68 06 00 00 00       	push   $0x6
  40080b:	e9 80 ff ff ff       	jmp    400790 <.plt>

0000000000400810 <printf@plt>:
  400810:	ff 25 3a 18 20 00    	jmp    *0x20183a(%rip)        # 602050 <printf@GLIBC_2.2.5>
  400816:	68 07 00 00 00       	push   $0x7
  40081b:	e9 70 ff ff ff       	jmp    400790 <.plt>

0000000000400820 <memset@plt>:
  400820:	ff 25 32 18 20 00    	jmp    *0x201832(%rip)        # 602058 <memset@GLIBC_2.2.5>
  400826:	68 08 00 00 00       	push   $0x8
  40082b:	e9 60 ff ff ff       	jmp    400790 <.plt>

0000000000400830 <__libc_start_main@plt>:
  400830:	ff 25 2a 18 20 00    	jmp    *0x20182a(%rip)        # 602060 <__libc_start_main@GLIBC_2.2.5>
  400836:	68 09 00 00 00       	push   $0x9
  40083b:	e9 50 ff ff ff       	jmp    400790 <.plt>

0000000000400840 <srand@plt>:
  400840:	ff 25 22 18 20 00    	jmp    *0x201822(%rip)        # 602068 <srand@GLIBC_2.2.5>
  400846:	68 0a 00 00 00       	push   $0xa
  40084b:	e9 40 ff ff ff       	jmp    400790 <.plt>

0000000000400850 <__gmon_start__@plt>:
  400850:	ff 25 1a 18 20 00    	jmp    *0x20181a(%rip)        # 602070 <__gmon_start__>
  400856:	68 0b 00 00 00       	push   $0xb
  40085b:	e9 30 ff ff ff       	jmp    400790 <.plt>

0000000000400860 <munmap@plt>:
  400860:	ff 25 12 18 20 00    	jmp    *0x201812(%rip)        # 602078 <munmap@GLIBC_2.2.5>
  400866:	68 0c 00 00 00       	push   $0xc
  40086b:	e9 20 ff ff ff       	jmp    400790 <.plt>

0000000000400870 <fopen@plt>:
  400870:	ff 25 0a 18 20 00    	jmp    *0x20180a(%rip)        # 602080 <fopen@GLIBC_2.2.5>
  400876:	68 0d 00 00 00       	push   $0xd
  40087b:	e9 10 ff ff ff       	jmp    400790 <.plt>

0000000000400880 <fwrite@plt>:
  400880:	ff 25 02 18 20 00    	jmp    *0x201802(%rip)        # 602088 <fwrite@GLIBC_2.2.5>
  400886:	68 0e 00 00 00       	push   $0xe
  40088b:	e9 00 ff ff ff       	jmp    400790 <.plt>

0000000000400890 <rand@plt>:
  400890:	ff 25 fa 17 20 00    	jmp    *0x2017fa(%rip)        # 602090 <rand@GLIBC_2.2.5>
  400896:	68 0f 00 00 00       	push   $0xf
  40089b:	e9 f0 fe ff ff       	jmp    400790 <.plt>

Disassembly of section .text:

00000000004008a0 <_start>:
  4008a0:	31 ed                	xor    %ebp,%ebp
  4008a2:	49 89 d1             	mov    %rdx,%r9
  4008a5:	5e                   	pop    %rsi
  4008a6:	48 89 e2             	mov    %rsp,%rdx
  4008a9:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  4008ad:	50                   	push   %rax
  4008ae:	54                   	push   %rsp
  4008af:	49 c7 c0 b0 0f 40 00 	mov    $0x400fb0,%r8
  4008b6:	48 c7 c1 40 0f 40 00 	mov    $0x400f40,%rcx
  4008bd:	48 c7 c7 18 0d 40 00 	mov    $0x400d18,%rdi
  4008c4:	e8 67 ff ff ff       	call   400830 <__libc_start_main@plt>
  4008c9:	f4                   	hlt
  4008ca:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

00000000004008d0 <deregister_tm_clones>:
  4008d0:	b8 2f 21 60 00       	mov    $0x60212f,%eax
  4008d5:	55                   	push   %rbp
  4008d6:	48 2d 28 21 60 00    	sub    $0x602128,%rax
  4008dc:	48 83 f8 0e          	cmp    $0xe,%rax
  4008e0:	48 89 e5             	mov    %rsp,%rbp
  4008e3:	77 02                	ja     4008e7 <deregister_tm_clones+0x17>
  4008e5:	5d                   	pop    %rbp
  4008e6:	c3                   	ret
  4008e7:	b8 00 00 00 00       	mov    $0x0,%eax
  4008ec:	48 85 c0             	test   %rax,%rax
  4008ef:	74 f4                	je     4008e5 <deregister_tm_clones+0x15>
  4008f1:	5d                   	pop    %rbp
  4008f2:	bf 28 21 60 00       	mov    $0x602128,%edi
  4008f7:	ff e0                	jmp    *%rax
  4008f9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000400900 <register_tm_clones>:
  400900:	b8 28 21 60 00       	mov    $0x602128,%eax
  400905:	55                   	push   %rbp
  400906:	48 2d 28 21 60 00    	sub    $0x602128,%rax
  40090c:	48 c1 f8 03          	sar    $0x3,%rax
  400910:	48 89 e5             	mov    %rsp,%rbp
  400913:	48 89 c2             	mov    %rax,%rdx
  400916:	48 c1 ea 3f          	shr    $0x3f,%rdx
  40091a:	48 01 d0             	add    %rdx,%rax
  40091d:	48 d1 f8             	sar    $1,%rax
  400920:	75 02                	jne    400924 <register_tm_clones+0x24>
  400922:	5d                   	pop    %rbp
  400923:	c3                   	ret
  400924:	ba 00 00 00 00       	mov    $0x0,%edx
  400929:	48 85 d2             	test   %rdx,%rdx
  40092c:	74 f4                	je     400922 <register_tm_clones+0x22>
  40092e:	5d                   	pop    %rbp
  40092f:	48 89 c6             	mov    %rax,%rsi
  400932:	bf 28 21 60 00       	mov    $0x602128,%edi
  400937:	ff e2                	jmp    *%rdx
  400939:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000400940 <__do_global_dtors_aux>:
  400940:	80 3d 09 18 20 00 00 	cmpb   $0x0,0x201809(%rip)        # 602150 <completed.6355>
  400947:	75 11                	jne    40095a <__do_global_dtors_aux+0x1a>
  400949:	55                   	push   %rbp
  40094a:	48 89 e5             	mov    %rsp,%rbp
  40094d:	e8 7e ff ff ff       	call   4008d0 <deregister_tm_clones>
  400952:	5d                   	pop    %rbp
  400953:	c6 05 f6 17 20 00 01 	movb   $0x1,0x2017f6(%rip)        # 602150 <completed.6355>
  40095a:	f3 c3                	repz ret
  40095c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400960 <frame_dummy>:
  400960:	48 83 3d b8 14 20 00 	cmpq   $0x0,0x2014b8(%rip)        # 601e20 <__JCR_END__>
  400967:	00 
  400968:	74 1e                	je     400988 <frame_dummy+0x28>
  40096a:	b8 00 00 00 00       	mov    $0x0,%eax
  40096f:	48 85 c0             	test   %rax,%rax
  400972:	74 14                	je     400988 <frame_dummy+0x28>
  400974:	55                   	push   %rbp
  400975:	bf 20 1e 60 00       	mov    $0x601e20,%edi
  40097a:	48 89 e5             	mov    %rsp,%rbp
  40097d:	ff d0                	call   *%rax
  40097f:	5d                   	pop    %rbp
  400980:	e9 7b ff ff ff       	jmp    400900 <register_tm_clones>
  400985:	0f 1f 00             	nopl   (%rax)
  400988:	e9 73 ff ff ff       	jmp    400900 <register_tm_clones>

000000000040098d <_r_func_>:
  40098d:	90                   	nop
  40098e:	90                   	nop
  40098f:	90                   	nop
  400990:	90                   	nop
  400991:	90                   	nop
  400992:	90                   	nop
  400993:	90                   	nop
  400994:	90                   	nop
  400995:	90                   	nop
  400996:	90                   	nop
  400997:	c3                   	ret

0000000000400998 <do_phase>:
  400998:	48 83 ec 48          	sub    $0x48,%rsp
  40099c:	48 89 7c 24 08       	mov    %rdi,0x8(%rsp)
  4009a1:	48 8d 44 24 10       	lea    0x10(%rsp),%rax
  4009a6:	48 83 c0 2b          	add    $0x2b,%rax
  4009aa:	8b 15 70 17 20 00    	mov    0x201770(%rip),%edx        # 602120 <secret_number>
  4009b0:	89 10                	mov    %edx,(%rax)
  4009b2:	48 8d 54 24 10       	lea    0x10(%rsp),%rdx
  4009b7:	48 8b 44 24 08       	mov    0x8(%rsp),%rax
  4009bc:	48 89 d6             	mov    %rdx,%rsi
  4009bf:	48 89 c7             	mov    %rax,%rdi
  4009c2:	e8 cf 00 00 00       	call   400a96 <digit2hex>
  4009c7:	48 8d 44 24 10       	lea    0x10(%rsp),%rax
  4009cc:	48 83 c0 2b          	add    $0x2b,%rax
  4009d0:	8b 10                	mov    (%rax),%edx
  4009d2:	8b 05 48 17 20 00    	mov    0x201748(%rip),%eax        # 602120 <secret_number>
  4009d8:	39 c2                	cmp    %eax,%edx
  4009da:	74 0f                	je     4009eb <do_phase+0x53>
  4009dc:	c7 05 6e 17 20 00 01 	movl   $0x1,0x20176e(%rip)        # 602154 <buffer_overflowed>
  4009e3:	00 00 00 
  4009e6:	e8 b5 fd ff ff       	call   4007a0 <abort@plt>
  4009eb:	b8 00 00 00 00       	mov    $0x0,%eax
  4009f0:	48 83 c4 48          	add    $0x48,%rsp
  4009f4:	c3                   	ret

00000000004009f5 <message>:
  4009f5:	48 83 ec 38          	sub    $0x38,%rsp
  4009f9:	89 7c 24 0c          	mov    %edi,0xc(%rsp)
  4009fd:	48 b8 54 61 73 6b 20 	movabs $0x637573206b736154,%rax
  400a04:	73 75 63 
  400a07:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
  400a0c:	48 b8 63 65 65 64 65 	movabs $0x2e646564656563,%rax
  400a13:	64 2e 00 
  400a16:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
  400a1b:	48 b8 54 61 73 6b 20 	movabs $0x696166206b736154,%rax
  400a22:	66 61 69 
  400a25:	48 89 44 24 10       	mov    %rax,0x10(%rsp)
  400a2a:	c7 44 24 18 6c 65 64 	movl   $0x2e64656c,0x18(%rsp)
  400a31:	2e 
  400a32:	c6 44 24 1c 00       	movb   $0x0,0x1c(%rsp)
  400a37:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%rsp)
  400a3c:	74 19                	je     400a57 <message+0x62>
  400a3e:	8b 05 10 17 20 00    	mov    0x201710(%rip),%eax        # 602154 <buffer_overflowed>
  400a44:	85 c0                	test   %eax,%eax
  400a46:	74 0f                	je     400a57 <message+0x62>
  400a48:	48 8d 44 24 20       	lea    0x20(%rsp),%rax
  400a4d:	48 89 c7             	mov    %rax,%rdi
  400a50:	e8 5b fd ff ff       	call   4007b0 <puts@plt>
  400a55:	eb 0d                	jmp    400a64 <message+0x6f>
  400a57:	48 8d 44 24 10       	lea    0x10(%rsp),%rax
  400a5c:	48 89 c7             	mov    %rax,%rdi
  400a5f:	e8 4c fd ff ff       	call   4007b0 <puts@plt>
  400a64:	48 83 c4 38          	add    $0x38,%rsp
  400a68:	c3                   	ret

0000000000400a69 <phase>:
  400a69:	53                   	push   %rbx
  400a6a:	48 83 ec 10          	sub    $0x10,%rsp
  400a6e:	48 89 7c 24 08       	mov    %rdi,0x8(%rsp)
  400a73:	bb 00 00 00 00       	mov    $0x0,%ebx
  400a78:	48 8b 44 24 08       	mov    0x8(%rsp),%rax
  400a7d:	48 89 c7             	mov    %rax,%rdi
  400a80:	e8 13 ff ff ff       	call   400998 <do_phase>
  400a85:	89 c3                	mov    %eax,%ebx
  400a87:	89 df                	mov    %ebx,%edi
  400a89:	e8 67 ff ff ff       	call   4009f5 <message>
  400a8e:	89 d8                	mov    %ebx,%eax
  400a90:	48 83 c4 10          	add    $0x10,%rsp
  400a94:	5b                   	pop    %rbx
  400a95:	c3                   	ret

0000000000400a96 <digit2hex>:
  400a96:	48 89 7c 24 e8       	mov    %rdi,-0x18(%rsp)
  400a9b:	48 89 74 24 e0       	mov    %rsi,-0x20(%rsp)
  400aa0:	48 c7 44 24 f8 00 00 	movq   $0x0,-0x8(%rsp)
  400aa7:	00 00 
  400aa9:	c7 44 24 f4 00 00 00 	movl   $0x0,-0xc(%rsp)
  400ab0:	00 
  400ab1:	e9 b6 00 00 00       	jmp    400b6c <digit2hex+0xd6>
  400ab6:	48 8b 44 24 e8       	mov    -0x18(%rsp),%rax
  400abb:	0f b6 00             	movzbl (%rax),%eax
  400abe:	3c 23                	cmp    $0x23,%al
  400ac0:	75 14                	jne    400ad6 <digit2hex+0x40>
  400ac2:	83 7c 24 f4 00       	cmpl   $0x0,-0xc(%rsp)
  400ac7:	0f 94 c0             	sete   %al
  400aca:	0f b6 c0             	movzbl %al,%eax
  400acd:	89 44 24 f4          	mov    %eax,-0xc(%rsp)
  400ad1:	e9 90 00 00 00       	jmp    400b66 <digit2hex+0xd0>
  400ad6:	83 7c 24 f4 00       	cmpl   $0x0,-0xc(%rsp)
  400adb:	74 05                	je     400ae2 <digit2hex+0x4c>
  400add:	e9 84 00 00 00       	jmp    400b66 <digit2hex+0xd0>
  400ae2:	48 8b 44 24 e8       	mov    -0x18(%rsp),%rax
  400ae7:	0f b6 00             	movzbl (%rax),%eax
  400aea:	0f be c0             	movsbl %al,%eax
  400aed:	83 e0 7f             	and    $0x7f,%eax
  400af0:	48 98                	cltq
  400af2:	0f b6 80 e0 0f 40 00 	movzbl 0x400fe0(%rax),%eax
  400af9:	3c ff                	cmp    $0xff,%al
  400afb:	75 02                	jne    400aff <digit2hex+0x69>
  400afd:	eb 67                	jmp    400b66 <digit2hex+0xd0>
  400aff:	48 83 7c 24 f8 00    	cmpq   $0x0,-0x8(%rsp)
  400b05:	74 55                	je     400b5c <digit2hex+0xc6>
  400b07:	48 8b 44 24 f8       	mov    -0x8(%rsp),%rax
  400b0c:	0f b6 00             	movzbl (%rax),%eax
  400b0f:	0f be c0             	movsbl %al,%eax
  400b12:	83 e0 7f             	and    $0x7f,%eax
  400b15:	48 98                	cltq
  400b17:	0f b6 80 e0 0f 40 00 	movzbl 0x400fe0(%rax),%eax
  400b1e:	0f b6 c0             	movzbl %al,%eax
  400b21:	c1 e0 04             	shl    $0x4,%eax
  400b24:	89 c2                	mov    %eax,%edx
  400b26:	48 8b 44 24 e8       	mov    -0x18(%rsp),%rax
  400b2b:	0f b6 00             	movzbl (%rax),%eax
  400b2e:	0f be c0             	movsbl %al,%eax
  400b31:	83 e0 7f             	and    $0x7f,%eax
  400b34:	48 98                	cltq
  400b36:	0f b6 80 e0 0f 40 00 	movzbl 0x400fe0(%rax),%eax
  400b3d:	83 e0 0f             	and    $0xf,%eax
  400b40:	09 d0                	or     %edx,%eax
  400b42:	89 c2                	mov    %eax,%edx
  400b44:	48 8b 44 24 e0       	mov    -0x20(%rsp),%rax
  400b49:	88 10                	mov    %dl,(%rax)
  400b4b:	48 83 44 24 e0 01    	addq   $0x1,-0x20(%rsp)
  400b51:	48 c7 44 24 f8 00 00 	movq   $0x0,-0x8(%rsp)
  400b58:	00 00 
  400b5a:	eb 0a                	jmp    400b66 <digit2hex+0xd0>
  400b5c:	48 8b 44 24 e8       	mov    -0x18(%rsp),%rax
  400b61:	48 89 44 24 f8       	mov    %rax,-0x8(%rsp)
  400b66:	48 83 44 24 e8 01    	addq   $0x1,-0x18(%rsp)
  400b6c:	48 8b 44 24 e8       	mov    -0x18(%rsp),%rax
  400b71:	0f b6 00             	movzbl (%rax),%eax
  400b74:	84 c0                	test   %al,%al
  400b76:	0f 85 3a ff ff ff    	jne    400ab6 <digit2hex+0x20>
  400b7c:	48 8b 44 24 e0       	mov    -0x20(%rsp),%rax
  400b81:	c3                   	ret

0000000000400b82 <getrid>:
  400b82:	48 83 ec 08          	sub    $0x8,%rsp
  400b86:	8b 05 98 15 20 00    	mov    0x201598(%rip),%eax        # 602124 <run_id.3623>
  400b8c:	85 c0                	test   %eax,%eax
  400b8e:	79 17                	jns    400ba7 <getrid+0x25>
  400b90:	e8 4b fc ff ff       	call   4007e0 <getpid@plt>
  400b95:	89 c7                	mov    %eax,%edi
  400b97:	e8 a4 fc ff ff       	call   400840 <srand@plt>
  400b9c:	e8 ef fc ff ff       	call   400890 <rand@plt>
  400ba1:	89 05 7d 15 20 00    	mov    %eax,0x20157d(%rip)        # 602124 <run_id.3623>
  400ba7:	8b 05 77 15 20 00    	mov    0x201577(%rip),%eax        # 602124 <run_id.3623>
  400bad:	48 83 c4 08          	add    $0x8,%rsp
  400bb1:	c3                   	ret

0000000000400bb2 <fillregion>:
  400bb2:	48 89 7c 24 e8       	mov    %rdi,-0x18(%rsp)
  400bb7:	89 74 24 e4          	mov    %esi,-0x1c(%rsp)
  400bbb:	89 54 24 e0          	mov    %edx,-0x20(%rsp)
  400bbf:	c7 44 24 fc 00 00 00 	movl   $0x0,-0x4(%rsp)
  400bc6:	00 
  400bc7:	eb 21                	jmp    400bea <fillregion+0x38>
  400bc9:	8b 44 24 fc          	mov    -0x4(%rsp),%eax
  400bcd:	48 98                	cltq
  400bcf:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  400bd6:	00 
  400bd7:	48 8b 44 24 e8       	mov    -0x18(%rsp),%rax
  400bdc:	48 01 c2             	add    %rax,%rdx
  400bdf:	8b 44 24 e0          	mov    -0x20(%rsp),%eax
  400be3:	89 02                	mov    %eax,(%rdx)
  400be5:	83 44 24 fc 01       	addl   $0x1,-0x4(%rsp)
  400bea:	8b 44 24 fc          	mov    -0x4(%rsp),%eax
  400bee:	3b 44 24 e4          	cmp    -0x1c(%rsp),%eax
  400bf2:	7c d5                	jl     400bc9 <fillregion+0x17>
  400bf4:	c3                   	ret

0000000000400bf5 <checkregion>:
  400bf5:	48 89 7c 24 e8       	mov    %rdi,-0x18(%rsp)
  400bfa:	89 74 24 e4          	mov    %esi,-0x1c(%rsp)
  400bfe:	89 54 24 e0          	mov    %edx,-0x20(%rsp)
  400c02:	c7 44 24 fc 00 00 00 	movl   $0x0,-0x4(%rsp)
  400c09:	00 
  400c0a:	eb 2a                	jmp    400c36 <checkregion+0x41>
  400c0c:	8b 44 24 fc          	mov    -0x4(%rsp),%eax
  400c10:	48 98                	cltq
  400c12:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  400c19:	00 
  400c1a:	48 8b 44 24 e8       	mov    -0x18(%rsp),%rax
  400c1f:	48 01 d0             	add    %rdx,%rax
  400c22:	8b 00                	mov    (%rax),%eax
  400c24:	3b 44 24 e0          	cmp    -0x20(%rsp),%eax
  400c28:	74 07                	je     400c31 <checkregion+0x3c>
  400c2a:	b8 00 00 00 00       	mov    $0x0,%eax
  400c2f:	eb 14                	jmp    400c45 <checkregion+0x50>
  400c31:	83 44 24 fc 01       	addl   $0x1,-0x4(%rsp)
  400c36:	8b 44 24 fc          	mov    -0x4(%rsp),%eax
  400c3a:	3b 44 24 e4          	cmp    -0x1c(%rsp),%eax
  400c3e:	7c cc                	jl     400c0c <checkregion+0x17>
  400c40:	b8 01 00 00 00       	mov    $0x1,%eax
  400c45:	c3                   	ret

0000000000400c46 <exec_phase>:
  400c46:	55                   	push   %rbp
  400c47:	48 89 e5             	mov    %rsp,%rbp
  400c4a:	53                   	push   %rbx
  400c4b:	48 83 ec 58          	sub    $0x58,%rsp
  400c4f:	48 89 7d a8          	mov    %rdi,-0x58(%rbp)
  400c53:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
  400c57:	25 f0 3f 00 00       	and    $0x3ff0,%eax
  400c5c:	48 89 05 1d 35 20 00 	mov    %rax,0x20351d(%rip)        # 604180 <alloca_size.3650>
  400c63:	48 8b 05 16 35 20 00 	mov    0x203516(%rip),%rax        # 604180 <alloca_size.3650>
  400c6a:	48 8d 50 0f          	lea    0xf(%rax),%rdx
  400c6e:	b8 10 00 00 00       	mov    $0x10,%eax
  400c73:	48 83 e8 01          	sub    $0x1,%rax
  400c77:	48 01 d0             	add    %rdx,%rax
  400c7a:	bb 10 00 00 00       	mov    $0x10,%ebx
  400c7f:	ba 00 00 00 00       	mov    $0x0,%edx
  400c84:	48 f7 f3             	div    %rbx
  400c87:	48 6b c0 10          	imul   $0x10,%rax,%rax
  400c8b:	48 29 c4             	sub    %rax,%rsp
  400c8e:	48 89 e0             	mov    %rsp,%rax
  400c91:	48 83 c0 0f          	add    $0xf,%rax
  400c95:	48 c1 e8 04          	shr    $0x4,%rax
  400c99:	48 c1 e0 04          	shl    $0x4,%rax
  400c9d:	48 89 05 e4 34 20 00 	mov    %rax,0x2034e4(%rip)        # 604188 <alloca_region.3649>
  400ca4:	b8 00 00 00 00       	mov    $0x0,%eax
  400ca9:	e8 d4 fe ff ff       	call   400b82 <getrid>
  400cae:	89 c2                	mov    %eax,%edx
  400cb0:	48 8b 05 c9 34 20 00 	mov    0x2034c9(%rip),%rax        # 604180 <alloca_size.3650>
  400cb7:	48 c1 e8 02          	shr    $0x2,%rax
  400cbb:	89 c1                	mov    %eax,%ecx
  400cbd:	48 8b 05 c4 34 20 00 	mov    0x2034c4(%rip),%rax        # 604188 <alloca_region.3649>
  400cc4:	89 ce                	mov    %ecx,%esi
  400cc6:	48 89 c7             	mov    %rax,%rdi
  400cc9:	e8 e4 fe ff ff       	call   400bb2 <fillregion>
  400cce:	48 8b 45 a8          	mov    -0x58(%rbp),%rax
  400cd2:	48 89 c7             	mov    %rax,%rdi
  400cd5:	e8 8f fd ff ff       	call   400a69 <phase>
  400cda:	b8 00 00 00 00       	mov    $0x0,%eax
  400cdf:	e8 9e fe ff ff       	call   400b82 <getrid>
  400ce4:	89 c2                	mov    %eax,%edx
  400ce6:	48 8b 05 93 34 20 00 	mov    0x203493(%rip),%rax        # 604180 <alloca_size.3650>
  400ced:	48 c1 e8 02          	shr    $0x2,%rax
  400cf1:	89 c1                	mov    %eax,%ecx
  400cf3:	48 8b 05 8e 34 20 00 	mov    0x20348e(%rip),%rax        # 604188 <alloca_region.3649>
  400cfa:	89 ce                	mov    %ecx,%esi
  400cfc:	48 89 c7             	mov    %rax,%rdi
  400cff:	e8 f1 fe ff ff       	call   400bf5 <checkregion>
  400d04:	85 c0                	test   %eax,%eax
  400d06:	75 0a                	jne    400d12 <exec_phase+0xcc>
  400d08:	bf 60 10 40 00       	mov    $0x401060,%edi
  400d0d:	e8 9e fa ff ff       	call   4007b0 <puts@plt>
  400d12:	48 8b 5d f8          	mov    -0x8(%rbp),%rbx
  400d16:	c9                   	leave
  400d17:	c3                   	ret

0000000000400d18 <main>:
  400d18:	48 83 ec 28          	sub    $0x28,%rsp
  400d1c:	89 7c 24 0c          	mov    %edi,0xc(%rsp)
  400d20:	48 89 34 24          	mov    %rsi,(%rsp)
  400d24:	b8 00 00 00 00       	mov    $0x0,%eax
  400d29:	e8 54 fe ff ff       	call   400b82 <getrid>
  400d2e:	48 c7 44 24 18 00 00 	movq   $0x0,0x18(%rsp)
  400d35:	00 00 
  400d37:	83 7c 24 0c 01       	cmpl   $0x1,0xc(%rsp)
  400d3c:	75 0e                	jne    400d4c <main+0x34>
  400d3e:	48 8b 05 fb 13 20 00 	mov    0x2013fb(%rip),%rax        # 602140 <stdin@GLIBC_2.2.5>
  400d45:	48 89 44 24 18       	mov    %rax,0x18(%rsp)
  400d4a:	eb 76                	jmp    400dc2 <main+0xaa>
  400d4c:	83 7c 24 0c 02       	cmpl   $0x2,0xc(%rsp)
  400d51:	75 4c                	jne    400d9f <main+0x87>
  400d53:	48 8b 04 24          	mov    (%rsp),%rax
  400d57:	48 83 c0 08          	add    $0x8,%rax
  400d5b:	48 8b 00             	mov    (%rax),%rax
  400d5e:	be 82 10 40 00       	mov    $0x401082,%esi
  400d63:	48 89 c7             	mov    %rax,%rdi
  400d66:	e8 05 fb ff ff       	call   400870 <fopen@plt>
  400d6b:	48 89 44 24 18       	mov    %rax,0x18(%rsp)
  400d70:	48 83 7c 24 18 00    	cmpq   $0x0,0x18(%rsp)
  400d76:	75 4a                	jne    400dc2 <main+0xaa>
  400d78:	48 8b 04 24          	mov    (%rsp),%rax
  400d7c:	48 83 c0 08          	add    $0x8,%rax
  400d80:	48 8b 00             	mov    (%rax),%rax
  400d83:	48 89 c6             	mov    %rax,%rsi
  400d86:	bf 88 10 40 00       	mov    $0x401088,%edi
  400d8b:	b8 00 00 00 00       	mov    $0x0,%eax
  400d90:	e8 7b fa ff ff       	call   400810 <printf@plt>
  400d95:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  400d9a:	e9 8d 01 00 00       	jmp    400f2c <main+0x214>
  400d9f:	48 8b 04 24          	mov    (%rsp),%rax
  400da3:	48 8b 00             	mov    (%rax),%rax
  400da6:	48 89 c6             	mov    %rax,%rsi
  400da9:	bf ac 10 40 00       	mov    $0x4010ac,%edi
  400dae:	b8 00 00 00 00       	mov    $0x0,%eax
  400db3:	e8 58 fa ff ff       	call   400810 <printf@plt>
  400db8:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  400dbd:	e9 6a 01 00 00       	jmp    400f2c <main+0x214>
  400dc2:	bf c8 10 40 00       	mov    $0x4010c8,%edi
  400dc7:	e8 e4 f9 ff ff       	call   4007b0 <puts@plt>
  400dcc:	bf f8 10 40 00       	mov    $0x4010f8,%edi
  400dd1:	e8 da f9 ff ff       	call   4007b0 <puts@plt>
  400dd6:	ba 00 20 00 00       	mov    $0x2000,%edx
  400ddb:	be 00 00 00 00       	mov    $0x0,%esi
  400de0:	bf 80 21 60 00       	mov    $0x602180,%edi
  400de5:	e8 36 fa ff ff       	call   400820 <memset@plt>
  400dea:	48 8b 44 24 18       	mov    0x18(%rsp),%rax
  400def:	48 89 c1             	mov    %rax,%rcx
  400df2:	ba ff 1f 00 00       	mov    $0x1fff,%edx
  400df7:	be 01 00 00 00       	mov    $0x1,%esi
  400dfc:	bf 80 21 60 00       	mov    $0x602180,%edi
  400e01:	e8 ca f9 ff ff       	call   4007d0 <fread@plt>
  400e06:	48 89 44 24 10       	mov    %rax,0x10(%rsp)
  400e0b:	48 8b 44 24 18       	mov    0x18(%rsp),%rax
  400e10:	48 89 c7             	mov    %rax,%rdi
  400e13:	e8 a8 f9 ff ff       	call   4007c0 <ferror@plt>
  400e18:	85 c0                	test   %eax,%eax
  400e1a:	74 0f                	je     400e2b <main+0x113>
  400e1c:	bf 20 11 40 00       	mov    $0x401120,%edi
  400e21:	e8 8a f9 ff ff       	call   4007b0 <puts@plt>
  400e26:	e9 e1 00 00 00       	jmp    400f0c <main+0x1f4>
  400e2b:	48 8b 44 24 10       	mov    0x10(%rsp),%rax
  400e30:	48 05 80 21 60 00    	add    $0x602180,%rax
  400e36:	c6 00 00             	movb   $0x0,(%rax)
  400e39:	41 b9 00 00 00 00    	mov    $0x0,%r9d
  400e3f:	41 b8 00 00 00 00    	mov    $0x0,%r8d
  400e45:	b9 32 01 00 00       	mov    $0x132,%ecx
  400e4a:	ba 07 00 00 00       	mov    $0x7,%edx
  400e4f:	be 00 40 00 00       	mov    $0x4000,%esi
  400e54:	bf 00 00 00 04       	mov    $0x4000000,%edi
  400e59:	e8 a2 f9 ff ff       	call   400800 <mmap@plt>
  400e5e:	48 89 05 fb 12 20 00 	mov    %rax,0x2012fb(%rip)        # 602160 <buffer_stack_area>
  400e65:	48 8b 05 f4 12 20 00 	mov    0x2012f4(%rip),%rax        # 602160 <buffer_stack_area>
  400e6c:	48 3d 00 00 00 04    	cmp    $0x4000000,%rax
  400e72:	74 28                	je     400e9c <main+0x184>
  400e74:	48 8b 05 cd 12 20 00 	mov    0x2012cd(%rip),%rax        # 602148 <stderr@GLIBC_2.2.5>
  400e7b:	48 89 c1             	mov    %rax,%rcx
  400e7e:	ba 53 00 00 00       	mov    $0x53,%edx
  400e83:	be 01 00 00 00       	mov    $0x1,%esi
  400e88:	bf 48 11 40 00       	mov    $0x401148,%edi
  400e8d:	e8 ee f9 ff ff       	call   400880 <fwrite@plt>
  400e92:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  400e97:	e9 90 00 00 00       	jmp    400f2c <main+0x214>
  400e9c:	48 8b 05 bd 12 20 00 	mov    0x2012bd(%rip),%rax        # 602160 <buffer_stack_area>
  400ea3:	48 05 f8 3f 00 00    	add    $0x3ff8,%rax
  400ea9:	48 89 05 b8 12 20 00 	mov    %rax,0x2012b8(%rip)        # 602168 <buffer_stack_top>
  400eb0:	48 8b 15 b1 12 20 00 	mov    0x2012b1(%rip),%rdx        # 602168 <buffer_stack_top>
  400eb7:	48 89 e0             	mov    %rsp,%rax
  400eba:	48 89 d4             	mov    %rdx,%rsp
  400ebd:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  400ec1:	48 89 c2             	mov    %rax,%rdx
  400ec4:	48 89 15 a5 12 20 00 	mov    %rdx,0x2012a5(%rip)        # 602170 <main_stack_top>
  400ecb:	bf 80 21 60 00       	mov    $0x602180,%edi
  400ed0:	e8 71 fd ff ff       	call   400c46 <exec_phase>
  400ed5:	48 8b 05 94 12 20 00 	mov    0x201294(%rip),%rax        # 602170 <main_stack_top>
  400edc:	48 89 c4             	mov    %rax,%rsp
  400edf:	48 8b 05 7a 12 20 00 	mov    0x20127a(%rip),%rax        # 602160 <buffer_stack_area>
  400ee6:	be 00 40 00 00       	mov    $0x4000,%esi
  400eeb:	48 89 c7             	mov    %rax,%rdi
  400eee:	e8 6d f9 ff ff       	call   400860 <munmap@plt>
  400ef3:	48 c7 05 6a 12 20 00 	movq   $0x0,0x20126a(%rip)        # 602168 <buffer_stack_top>
  400efa:	00 00 00 00 
  400efe:	48 8b 05 63 12 20 00 	mov    0x201263(%rip),%rax        # 602168 <buffer_stack_top>
  400f05:	48 89 05 54 12 20 00 	mov    %rax,0x201254(%rip)        # 602160 <buffer_stack_area>
  400f0c:	48 8b 05 2d 12 20 00 	mov    0x20122d(%rip),%rax        # 602140 <stdin@GLIBC_2.2.5>
  400f13:	48 39 44 24 18       	cmp    %rax,0x18(%rsp)
  400f18:	74 0d                	je     400f27 <main+0x20f>
  400f1a:	48 8b 44 24 18       	mov    0x18(%rsp),%rax
  400f1f:	48 89 c7             	mov    %rax,%rdi
  400f22:	e8 c9 f8 ff ff       	call   4007f0 <fclose@plt>
  400f27:	b8 00 00 00 00       	mov    $0x0,%eax
  400f2c:	48 83 c4 28          	add    $0x28,%rsp
  400f30:	c3                   	ret
  400f31:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
  400f38:	00 00 00 
  400f3b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000400f40 <__libc_csu_init>:
  400f40:	41 57                	push   %r15
  400f42:	41 89 ff             	mov    %edi,%r15d
  400f45:	41 56                	push   %r14
  400f47:	49 89 f6             	mov    %rsi,%r14
  400f4a:	41 55                	push   %r13
  400f4c:	49 89 d5             	mov    %rdx,%r13
  400f4f:	41 54                	push   %r12
  400f51:	4c 8d 25 b8 0e 20 00 	lea    0x200eb8(%rip),%r12        # 601e10 <__frame_dummy_init_array_entry>
  400f58:	55                   	push   %rbp
  400f59:	48 8d 2d b8 0e 20 00 	lea    0x200eb8(%rip),%rbp        # 601e18 <__do_global_dtors_aux_fini_array_entry>
  400f60:	53                   	push   %rbx
  400f61:	4c 29 e5             	sub    %r12,%rbp
  400f64:	31 db                	xor    %ebx,%ebx
  400f66:	48 c1 fd 03          	sar    $0x3,%rbp
  400f6a:	48 83 ec 08          	sub    $0x8,%rsp
  400f6e:	e8 f5 f7 ff ff       	call   400768 <_init>
  400f73:	48 85 ed             	test   %rbp,%rbp
  400f76:	74 1e                	je     400f96 <__libc_csu_init+0x56>
  400f78:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
  400f7f:	00 
  400f80:	4c 89 ea             	mov    %r13,%rdx
  400f83:	4c 89 f6             	mov    %r14,%rsi
  400f86:	44 89 ff             	mov    %r15d,%edi
  400f89:	41 ff 14 dc          	call   *(%r12,%rbx,8)
  400f8d:	48 83 c3 01          	add    $0x1,%rbx
  400f91:	48 39 eb             	cmp    %rbp,%rbx
  400f94:	75 ea                	jne    400f80 <__libc_csu_init+0x40>
  400f96:	48 83 c4 08          	add    $0x8,%rsp
  400f9a:	5b                   	pop    %rbx
  400f9b:	5d                   	pop    %rbp
  400f9c:	41 5c                	pop    %r12
  400f9e:	41 5d                	pop    %r13
  400fa0:	41 5e                	pop    %r14
  400fa2:	41 5f                	pop    %r15
  400fa4:	c3                   	ret
  400fa5:	90                   	nop
  400fa6:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
  400fad:	00 00 00 

0000000000400fb0 <__libc_csu_fini>:
  400fb0:	f3 c3                	repz ret

Disassembly of section .fini:

0000000000400fb4 <_fini>:
  400fb4:	48 83 ec 08          	sub    $0x8,%rsp
  400fb8:	48 83 c4 08          	add    $0x8,%rsp
  400fbc:	c3                   	ret
